home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Personal Computer World 2009 February
/
PCWFEB09.iso
/
Software
/
Resources
/
Chat & Communication
/
Digsby build 37
/
digsby_setup.exe
/
lib
/
cmd.pyo
(
.txt
)
< prev
next >
Wrap
Python Compiled Bytecode
|
2008-10-13
|
8KB
|
328 lines
# Source Generated with Decompyle++
# File: in.pyo (Python 2.5)
import string
__all__ = [
'Cmd']
PROMPT = '(Cmd) '
IDENTCHARS = string.ascii_letters + string.digits + '_'
class Cmd:
prompt = PROMPT
identchars = IDENTCHARS
ruler = '='
lastcmd = ''
intro = None
doc_leader = ''
doc_header = 'Documented commands (type help <topic>):'
misc_header = 'Miscellaneous help topics:'
undoc_header = 'Undocumented commands:'
nohelp = '*** No help on %s'
use_rawinput = 1
def __init__(self, completekey = 'tab', stdin = None, stdout = None):
import sys as sys
if stdin is not None:
self.stdin = stdin
else:
self.stdin = sys.stdin
if stdout is not None:
self.stdout = stdout
else:
self.stdout = sys.stdout
self.cmdqueue = []
self.completekey = completekey
def cmdloop(self, intro = None):
self.preloop()
if self.use_rawinput and self.completekey:
try:
import readline as readline
self.old_completer = readline.get_completer()
readline.set_completer(self.complete)
readline.parse_and_bind(self.completekey + ': complete')
except ImportError:
pass
except:
None<EXCEPTION MATCH>ImportError
None<EXCEPTION MATCH>ImportError
try:
if intro is not None:
self.intro = intro
if self.intro:
self.stdout.write(str(self.intro) + '\n')
stop = None
while not stop:
None if self.cmdqueue else None<EXCEPTION MATCH>EOFError
self.stdout.write(self.prompt)
self.stdout.flush()
line = self.stdin.readline()
if not len(line):
line = 'EOF'
else:
line = line[:-1]
line = self.precmd(line)
stop = self.onecmd(line)
stop = self.postcmd(stop, line)
self.postloop()
finally:
if self.use_rawinput and self.completekey:
try:
import readline as readline
readline.set_completer(self.old_completer)
except ImportError:
pass
except:
None<EXCEPTION MATCH>ImportError
def precmd(self, line):
return line
def postcmd(self, stop, line):
return stop
def preloop(self):
pass
def postloop(self):
pass
def parseline(self, line):
line = line.strip()
if not line:
return (None, None, line)
elif line[0] == '?':
line = 'help ' + line[1:]
elif line[0] == '!':
if hasattr(self, 'do_shell'):
line = 'shell ' + line[1:]
else:
return (None, None, line)
i = 0
n = len(line)
while i < n and line[i] in self.identchars:
i = i + 1
cmd = line[:i]
arg = line[i:].strip()
return (cmd, arg, line)
def onecmd(self, line):
(cmd, arg, line) = self.parseline(line)
if not line:
return self.emptyline()
if cmd is None:
return self.default(line)
self.lastcmd = line
if cmd == '':
return self.default(line)
else:
try:
func = getattr(self, 'do_' + cmd)
except AttributeError:
return self.default(line)
return func(arg)
def emptyline(self):
if self.lastcmd:
return self.onecmd(self.lastcmd)
def default(self, line):
self.stdout.write('*** Unknown syntax: %s\n' % line)
def completedefault(self, *ignored):
return []
def completenames(self, text, *ignored):
dotext = 'do_' + text
return _[1]
def complete(self, text, state):
if state == 0:
import readline
origline = readline.get_line_buffer()
line = origline.lstrip()
stripped = len(origline) - len(line)
begidx = readline.get_begidx() - stripped
endidx = readline.get_endidx() - stripped
if begidx > 0:
(cmd, args, foo) = self.parseline(line)
None if cmd == '' else None<EXCEPTION MATCH>AttributeError
compfunc = self.completenames
self.completion_matches = compfunc(text, line, begidx, endidx)
try:
return self.completion_matches[state]
except IndexError:
return None
def get_names(self):
names = []
classes = [
self.__class__]
while classes:
aclass = classes.pop(0)
if aclass.__bases__:
classes = classes + list(aclass.__bases__)
names = names + dir(aclass)
return names
def complete_help(self, *args):
return self.completenames(*args)
def do_help(self, arg):
if arg:
try:
func = getattr(self, 'help_' + arg)
except AttributeError:
try:
doc = getattr(self, 'do_' + arg).__doc__
if doc:
self.stdout.write('%s\n' % str(doc))
return None
except AttributeError:
pass
self.stdout.write('%s\n' % str(self.nohelp % (arg,)))
return None
func()
else:
names = self.get_names()
cmds_doc = []
cmds_undoc = []
help = { }
for name in names:
if name[:5] == 'help_':
help[name[5:]] = 1
continue
names.sort()
prevname = ''
for name in names:
if name[:3] == 'do_':
if name == prevname:
continue
prevname = name
cmd = name[3:]
if cmd in help:
cmds_doc.append(cmd)
del help[cmd]
elif getattr(self, name).__doc__:
cmds_doc.append(cmd)
else:
cmds_undoc.append(cmd)
cmd in help
self.stdout.write('%s\n' % str(self.doc_leader))
self.print_topics(self.doc_header, cmds_doc, 15, 80)
self.print_topics(self.misc_header, help.keys(), 15, 80)
self.print_topics(self.undoc_header, cmds_undoc, 15, 80)
def print_topics(self, header, cmds, cmdlen, maxcol):
if cmds:
self.stdout.write('%s\n' % str(header))
if self.ruler:
self.stdout.write('%s\n' % str(self.ruler * len(header)))
self.columnize(cmds, maxcol - 1)
self.stdout.write('\n')
def columnize(self, list, displaywidth = 80):
if not list:
self.stdout.write('<empty>\n')
return None
nonstrings = _[1]
size = len(list)
if size == 1:
self.stdout.write('%s\n' % str(list[0]))
return None
for nrows in range(1, len(list)):
ncols = (size + nrows - 1) // nrows
colwidths = []
totwidth = -2
for col in range(ncols):
colwidth = 0
for row in range(nrows):
i = row + nrows * col
if i >= size:
break
x = list[i]
colwidth = max(colwidth, len(x))
colwidths.append(colwidth)
totwidth += colwidth + 2
if totwidth > displaywidth:
break
continue
if totwidth <= displaywidth:
break
continue
else:
nrows = len(list)
ncols = 1
colwidths = [
0]
for row in range(nrows):
texts = []
for col in range(ncols):
i = row + nrows * col
if i >= size:
x = ''
else:
x = list[i]
texts.append(x)
while texts and not texts[-1]:
del texts[-1]
for col in range(len(texts)):
texts[col] = texts[col].ljust(colwidths[col])
self.stdout.write('%s\n' % str(' '.join(texts)))